A Customisable Memory Management Framework for C++
نویسندگان
چکیده
Automatic garbage collection relieves programmers from the burden of managing memory themselves and several techniques have been developed that make garbage collection feasible in many situations, including real time applications or within traditional programming languages. However optimal performance cannot always be achieved by a uniform general purpose solution. Sometimes an algorithm exhibits a predictable pattern of memory usage that could be better handled speciically, delaying as much as possible the intervention of the general purpose collector. This leads to the requirement for algorithm speciic customisation of the collector strategies. We present a dynamic memory management framework which can be customised to the needs of an algorithm, while preserving the convenience of automatic collection in the normal case. The Customisable Memory Manager (CMM) organises memory in multiple heaps. Each heap is an instance of a C++ class which abstracts and encapsulates a particular storage discipline. The default heap for collectable objects uses the technique of mostly copying garbage collection, providing good performance and memory compaction. Customisation of the collector is achieved exploiting object orientation by deening specialised versions of the collector methods for each heap class. The object oriented interface to the collector enables coexistence and coordination among the various collectors as well as integration with traditional code unaware of garbage collection. The CMM is implemented in C++ without any special support in the language or the compiler. The techniques used in the CMM are general enough to be applicable also to other languages. The performance of the CMM is analysed and compared to other conservative collectors for C/C++ in various conngurations.
منابع مشابه
A Customisable Memory Management Framework
Memory management is a critical issue for many large object-oriented applications, but in C++ only explicit memory reclamation through the delete operator is generally available. We analyse diierent possibilities for memory management in C++ and present a dynamic memory management framework which can be customised to the need of speciic applications. The framework allows full integration and co...
متن کاملA framework for Experience Management in Public Organisations
The Pellucid project developed an adaptable and customisable platform for enabling experience management in public organisations. A framework for experience management has been developed based on the generation of ‘active hints’ that are presented to the user according to working context. Working context encompasses both position in the work process and domain-specific characteristics. The pape...
متن کاملCustomising Object Allocation
Automatic garbage collection relieves programmers from the burden of managing memory themselves and several techniques have been developed that make garbage collection feasible in many situations , including real time applications or within traditional programming languages. However optimal performance cannot always be achieved by a uniform general purpose solution. Sometimes an algorithm exhib...
متن کاملA Framework for Customisable Schema Evolution in Object-Oriented Databases
This paper describes an evolution framework supporting customisation of the schema evolution and instance adaptation approaches in an object database management system. The framework is implemented as an integral part of an interpreter for a language with a versioned type system and employs concepts from objectoriented frameworks and aspect-oriented programming to support flexible changes. Some...
متن کاملThe Posso Library for Polynomial System Solving
The PoSSo library is a sophisticated library of tools for solving systems of polynomial equations. Each tool is supplied as a framework, rather than as a traditional program library or as a self-contained package, providing a unusual level of exibility. Each framework consists of a collection of C++ classes, which allows the customisation of each tool. Customisation can happen either at compile...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- Softw., Pract. Exper.
دوره 28 شماره
صفحات -
تاریخ انتشار 1998